//package com.ocom.accesservice.controller;
//
//import com.google.gson.Gson;
//import com.ocom.accesservice.feign.MqService;
//import com.ocom.accesservice.service.*;
//import com.ocom.common.constant.AccessServiceUrl;
//import com.ocom.common.entity.master.EntityDeviceLogin;
//import com.ocom.common.entity.access.EntityMjYkm;
//import com.ocom.common.entity.company.EntityCompanyInfo;
//import com.ocom.common.enums.ResultEnum;
//import com.ocom.common.resp.Result;
//import com.ocom.common.utils.*;
//import com.ocom.common.vo.PersonVo;
//import com.ocom.common.vo.accessdevice.CenterMachInfoVo;
//import com.ocom.redis.util.RedisUtil;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.validation.annotation.Validated;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RestController;
//
//import javax.annotation.Resource;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//
//@RestController
//public class YkmController {
//    private final Logger log = LoggerFactory.getLogger(YkmController.class);
//
//    @Autowired
//    private MjYkmService mjYkmService;
//
//    @Autowired
//    private CompanyInfoService companyInfoService;
//
//    @Autowired
//    MjDeviceInfoService mjDeviceInfoService;
//
//    @Autowired
//    private PersonnelInfoService personnelInfoService;
//
//    @Autowired
//    private DeviceLoginService deviceLoginService;
//
//    @Autowired
//    private MqService mqService;
//
//    @Resource
//    private RedisUtil redisUtil;
//    /**
//     * 获取粤康码规则信息（Ykm/info）
//     * */
//    @GetMapping(AccessServiceUrl.URL_YkmInfo)
//    public Result YkmInfo(Long comId,Long areaId){
//        if (comId == null){
//            log.error("单位编号为空");
//            return ResultUtil.error(ResultEnum.Err_203,"单位编号为空");
//        }
//        if (areaId == null){
//            log.error("区域编号为空");
//            return ResultUtil.error(ResultEnum.Err_203,"区域编号为空");
//        }
//        EntityMjYkm entityMjYkm = null;
//        try {
//            entityMjYkm = mjYkmService.YkmInfo(comId, areaId);
//            if (entityMjYkm == null){
//                if (areaId==0){
//                    try {
//                        mjYkmService.initYkmInfo(comId,areaId);
//                    }catch (Exception exception){
//                        log.error("初始化粤康码规则信息失败"+exception.getMessage());
//                        return ResultUtil.error(ResultEnum.Err_2009,"初始化粤康码规则信息失败");
//                    }
//
//                }
//            }
//        }catch (Exception exception){
//            log.error("获取粤康码规则信息失败："+exception.getMessage());
//            return  ResultUtil.error(ResultEnum.Err_2009,"获取粤康码规则信息失败");
//        }
//        return ResultUtil.success(entityMjYkm);
//    }
//
//    //添加/修改粤康码规则信息（Ykm/modify）
//    @PostMapping(AccessServiceUrl.URL_YkmModify)
//    public Result YkmModify(@Validated @RequestBody EntityMjYkm entityMjYkm){
//        if (entityMjYkm.getComId() == null){
//            log.error("单位编号为空");
//            return ResultUtil.error(ResultEnum.Err_203,"单位编号为空");
//        }
//        if (entityMjYkm.getAreaId() == null){
//            log.error("区域编号为空");
//            return ResultUtil.error(ResultEnum.Err_203,"区域编号为空");
//        }
//        if (entityMjYkm.getIsEnable() == null){
//            log.error("是否启用当前规则为空");
//            return ResultUtil.error(ResultEnum.Err_203,"是否启用当前规则为空");
//        }
//        try {
//            mjYkmService.YkmModify(entityMjYkm.getComId(),entityMjYkm);
//        }catch (Exception exception){
//            log.error("添加/修改粤康码规则信息失败："+exception.getMessage());
//            return  ResultUtil.error(ResultEnum.Err_2009,"添加/修改粤康码规则信息失败");
//        }
//
//
//        try {
//            String jobId = DateUtils.dateTimeNow();
//            Long state = 1L;
//            mjDeviceInfoService.SetMachParaState(entityMjYkm.getComId(), entityMjYkm.getAreaId(),jobId,state);
//
//        }catch (Exception exception){
//            log.error("更改设备参数状态失败：{{}}", exception.getMessage());
//            return  ResultUtil.error(ResultEnum.Err_2009,"更改设备参数状态失败");
//        }
//        return ResultUtil.success();
//    }
//
//    @PostMapping(AccessServiceUrl.URL_getCommNumsByComId)
//    public Result getCommNumsByComId(Long companyId){
//        CenterMachInfoVo centerMachInfoVo=mjDeviceInfoService.getCommNumsByComId(companyId);
//        centerMachInfoVo.setComId(companyId);
////        if(centerMachInfoVo.getDeviceNums()>0){
////        select  comm_type as  commType ,comm_nums as commNums from  company_info
////        where  com_id=@comId ;
////        timesAll=@commType ==1 ? @commNums  ?@commType ==2 ? @commNums * @deviceNums :0;
////        }
//        EntityCompanyInfo entityCompanyInfo=companyInfoService.getCompanyInfo(companyId);
//        /**
//         *   `comm_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通讯次数限制类型；0:不限制，1：单位上限，2：中台上限',
//         *   `comm_nums` int(11) NOT NULL DEFAULT '0' COMMENT '通讯次数上限；0表示不限制,（次/天）',
//         */
//        if(entityCompanyInfo!=null){
//            if(entityCompanyInfo.getCommType()==0){
//                centerMachInfoVo.setTimesAll(-1);
//            }
//            if(entityCompanyInfo.getCommType()==1){
//                centerMachInfoVo.setTimesAll(entityCompanyInfo.getCommNums().intValue());
//            }
//            if(entityCompanyInfo.getCommType()==2){
//                centerMachInfoVo.setTimesAll(entityCompanyInfo.getCommNums().intValue()*centerMachInfoVo.getDeviceNums());
//            }
//        }
//        return ResultUtil.success(centerMachInfoVo);
//    }
//
//
//    /*
//     * @Description:2.9.6获取粤康码申请信息列表
//     * @Author: lu
//     * @Date: 2022/5/7 18:04
//     * @param companyId:
//     * @return: com.ocom.common.resp.Result
//     **/
//    @PostMapping(AccessServiceUrl.URL_GetCenterTaskOfYkm)
//    public Result getCommNumsByComId(Long comId,Long regionId,Long deptId,Integer Nums){
//        log.info("执行定时任务,参数：,comId【{}】,regionId【{}】,deptId【{}】,Nums【{}】",comId,regionId,deptId,Nums);
//        if (comId==null || regionId==null || Nums==null | deptId==null){
//            return ResultUtil.error(ResultEnum.Err_203);
//        }
//        if(regionId==0l){
//            deptId=0l;
//        }
////        List<PersonVo> list=personnelInfoService.select(comId,deptId,Nums);
//        List<PersonVo> list=personnelInfoService.selectLimit(comId,deptId,Nums);
//        Gson gson =new Gson();
//        //判断中育
//        EntityDeviceLogin entityDeviceLogin=deviceLoginService.GetLoginAccount(comId);
//        if (list.size()>0){
//            for (PersonVo personVo : list) {
//                String key = MD5.MD5Encode(String.valueOf(comId), "utf8");
//                String identity=AES.decrypt(personVo.getEncryIdentity(),key);
//                if(CommonUtil.isNull(identity)){
//                    if(!CommonUtil.isNull(personVo.getPIdentity())){
//                        identity=personVo.getPIdentity();
//                    }else{
//                        continue;
//                    }
//                }
//                Map<String,String> map= new HashMap<>();
//                map.put("name",personVo.getPName());
//                map.put("identitycard_No",identity);
//                //中育用mq   其他用redis
//                if (entityDeviceLogin==null){
//                    redisUtil.leftPush("timerCompany:"+comId+":"+regionId,gson.toJson(map),82800l);
//                }else {
////                    log.info("推送mq 【{}】，【{}】，【{}】",comId,identity,personVo.getPName());
//                    Result result = mqService.Send(comId,identity,personVo.getPName());
////                    log.info("推送mq返回 {} ",result);
//                }
//            }
//        }else {
//            return ResultUtil.error(ResultEnum.Err_2020);
//        }
//        return ResultUtil.success();
//    }
//
//
//
//
//}
